Mobile devices, such as smart phone devices, usually have virtual or physical keyboards in a small size. Due to the small keyboard, it takes more time for a user to enter text, and the user-entered text is prone to errors. To facilitate input of text by users, current mobile devices often provide functionalities of text prediction. The text prediction function allows a mobile device to present predicted text for a user to select and enter, thereby saving the user's time to manually type out the same word.
There are several disadvantages with current text prediction in mobile devices. First, it provides a limited number of predicted options for a user to select from. For example, usually predicted options are displayed in a row below the area in which the text is being inputted. Frequently the displayed predictions do not include the user's intended input, and the user still must manually type the desired input text. Second, current text prediction is based on the user's input in the past and does not allow a user to directly indicate how the text prediction should be performed. For example, the current text prediction does not include a user interface for a user to request text prediction for a certain category of inputs, such as punctuations, or certain verbs or nouns. It is therefore desirable to provide text prediction functions that include more text prediction options for user selection and that allow the user to request a particular type of predictions.